LLaMA:开放高效的基础语言模型(Meta AI 您所在的位置:网站首页 is open和opening的区别 LLaMA:开放高效的基础语言模型(Meta AI

LLaMA:开放高效的基础语言模型(Meta AI

2023-04-01 12:00| 来源: 网络整理| 查看: 265

论文:LLaMA: Open and Efficient Foundation Language Models

Meta AI Hugo Touvron,∗ Thibaut Lavril等人。

GitHub - facebookresearch/llama: Inference code for LLaMA models模型官网实现代码

GitHub - lxe/simple-llama-finetuner: LLaMA微调UI

Stanford Alpaca-ChatGPT平替

Stanford CRFM

小虎AI珏爷:论文阅读-LaMDA:对话应用程序的语言模型

小虎AI珏爷:ChatGPT背后的技术之理解人类反馈强化学习(RLHF)

小虎AI珏爷:ChatGPT-4具备什么技能

小虎AI珏爷:ChatGPT可能的应用场景及Prompt使用方式

小虎AI珏爷:ChatGPT指令模板大全-通用人工智能的觉醒

小虎AI珏爷:论文阅读-PaLM-E:一种体现的多模态语言模型

小虎AI珏爷:论文阅读:Language Models are Few-Shot Learners(巨无霸OpenAI GPT3 2020)

小虎AI珏爷:论文阅读:语言模型是无监督的多任务学习者(GPT2 2019)

小虎AI珏爷:论文阅读-自指导:将语言模型与自生成的指令相结合

小虎AI珏爷:ColossalChat:完整RLHF平替ChatGPT的开源方案

论文介绍了LLaMA,它是一组基础语言模型,参数范围从7B到65B。在数万亿的tokens上训练的模型,并表明可以专门使用公开可用的数据集来训练最先进的模型,而无需求助于专有和不可访问的数据集。特别是,LLaMA-13B在大多数基准测试中都优于GPT-3(175B),并且LLaMA65B与最好的型号Chinchilla-70B和PaLM-540B具有竞争力。

1 介绍

在大量文本语料库上训练的大型语言模型(LLM)已经显示出它们从文本指令或几个例子中执行新任务的能力(Brown et al.,2020)。当将模型缩放到足够大时,这些few-shot 特性首次出现(Kaplan等人,2020年),导致一系列工作集中于进一步缩放这些模型(Chowdhery等人,2022年;Rae等人,2021)。这些努力是基于这样一种假设,即更多的参数将带来更好的性能。然而,Hoffmann等人最近的工作(2022)表明,对于给定的计算预算,最佳性能不是通过最大的模型实现的,而是通过在更多数据上训练的较小模型实现的

Hoffmann等人(2022)的缩放规律的目标是确定如何为特定的训练计算预算最佳地缩放数据集和模型大小。然而,这个目标忽略了推理预算,这在大规模服务于语言模型时变得至关重要。在这种情况下,给定目标性能水平,首选模型不是训练最快的,而是推理最快的。尽管训练大型模型以达到一定的性能水平可能更便宜,但训练时间更长的小型模型最终推理更便宜。例如,尽管Hoffmann等人(2022)建议在200B代币上训练10B模型,但论文发现即使在1T tokens之后,7B模型的性能也会继续提高。

这项工作的重点是训练一系列语言模型,通过训练比通常使用的tokens更多的tokens,在不同的推理预算下实现尽可能好的性能。由此产生的模型称为LLaMA,其参数范围从7B到65B,与现有的最佳LLM相比具有竞争力。例如,LLaMA-13B大多数基准测试中都优于GPT-3尽管它比GPT-3小10倍。我们相信,这个模型将有助于LLM的访问和研究民主化,因为它可以在单个GPU上运行。在规模的高端,论文的65B参数模型也与最好的大型语言模型(如Chinchilla或PaLM-540B)具有竞争力。

与Chinchilla、PaLM或GPT-3不同,论文只使用公开可用的数据,使论文工作与开源兼容,而大多数现有模型依赖于未公开或未记录的数据(例如“Books–2TB”或“Social media conversations”)。存在一些例外,特别是OPT(Zhang等人,2022)、GPT-NeoX(Black等人,2022)。

在本文的其余部分中,论文概述了我们对Transformer架构所做的修改(Vaswani et al.,2017),以及训练方法。然后,报告的模型的性能,并在一组标准基准上与其他LLM进行比较。最后,使用负责任的人工智能社区的一些最新基准,揭示了模型中编码的一些偏见和毒性。

2 方法

论文的训练方法类似于之前工作中描述的方法(Brown et al.,2020;Chowdhery et al.,2022),并受到Chinchilla比例规律的启发(Hoffmann et al.,2021)。使用标准优化器在大量文本数据上训练大型Transformer。

2.1 预训练数据集

训练数据集是表1中报告的几个来源的混合,涵盖了一组不同的领域。在大多数情况下,论文重用已被用来训练其他LLM的数据源,但限制只能使用公开可用且与开源兼容的数据。这导致了以下数据及其在训练集中所代表的百分比的混合:

表1:预训练数据。用于预训练的数据混合,对于每个子集,我们列出了采样比例、在1.4T tokens上训练时在该子集上执行的epochs数以及磁盘大小。1T tokens上的预训练运行具有相同的采样比例。

英语CommonCrawl[67%]。论文使用CCNet pipline 预处理了2017年至2020年的五个CommonCrawl 转储(Wenzek et al.,2020)。该过程在行级别消除重复数据,使用fastText线性分类器执行语言识别以删除非英语页面,并使用ngram语言模型过滤低质量内容。此外,训练了一个线性模型来对维基百科中用作参考文献的页面进行分类。随机抽样的页面,以及未被分类为参考文献的丢弃页面。

C4 [15%]。在探索性实验中,观察到使用不同的预处理CommonCrawl数据集可以提高性能。因此,将公开可用的C4数据集(Raffel et al.,2020)包含在数据中。C4的预处理还包括重复数据消除语言识别步骤:与CCNet的主要区别在于质量过滤,它主要依赖于启发式方法,如标点符号的存在或网页中的单词和句子的数量。

Github [4.5%]。论文使用Google BigQuery上提供的公共GitHub数据集。只保留了在Apache、BSD和MIT许可证下分发的项目。此外,使用基于行长度或字母数字字符比例的启发式方法过滤低质量文件,并使用正则表达式删除样板文件,如标头。最后,在文件级别对生成的数据集进行重复数据消除,并进行精确匹配。

维基百科[4.5%]。添加了2022年6月至8月期间的维基百科转储,涵盖20种语言,使用拉丁语或西里尔文:bg、ca、cs、da、de、en、es、fr、hr、hu、it、nl、pl、pt、ro、ru、sl、sr、sv、uk。论文处理数据以删除超链接、注释和其他格式样板。

Gutenberg 和 Books3 [4.5%]。论文在训练数据集中包括两个图书语料库:Gutenberg项目,其中包含公共领域的图书,以及ThePile的Books3部分(Gao et al.,2020),这是一个用于训练大型语言模型的公开数据集。论文在书本本级别执行重复数据消除,删除内容重叠超过90%的书本。

ArXiv【2.5%】。我们处理arXiv Latex文件,将科学数据添加到数据集中。继Lewkowycz等人(2022)之后,删除了第一节之前的所有内容以及参考书目。还删除了.tex文件中的注释,并内联扩展了用户编写的定义和宏,以提高论文之间的一致性。

Stack Exchange [2%]。包括Stack Exchange,这是一个高质量问答网站,涵盖了从计算机科学到化学的一系列不同领域。保留了28个最大网站的数据,删除了文本中的HTML标签,并按分数(从高到低)对答案进行了排序。

Tokenizer。使用字节对编码(BPE)算法(Sennrich et al.,2015)对数据进行标记,使用PensionePiece(Kudo和Richardson,2018)的实现。值得注意的是,论文将所有数字拆分为单个数字,并回退到字节以分解未知的UTF-8字符。

总体而言,整个训练数据集在标记化后包含大约1.4T的tokens。对于大多数训练数据,每个token在训练期间只使用一次,但维基百科和图书领域除外,论文在这两个领域执行了大约两个epochs。

2.2 架构

继最近对大型语言模型的研究之后,论文网络基于Transformer架构(Vaswani et al.,2017)。论文利用了随后提出的各种改进,并在不同的模型中使用,如PaLM。以下是与原始建筑的主要区别,以及论文在那里找到了这一变化的灵感:

预归一化[GPT3]。为了提高训练稳定性,对每个Transformer子层的输入进行归一化,而不是对输出进行归一化。使用了Zhang和Sennrich(2019)引入的RMSNorm规范化函数。

SwiGLU激活功能[PaLM]。用Shazeer(2020)引入的SwiGLU激活函数取代了ReLU非线性,以提高性能。论文使用 \frac{2}{3} 4d 的尺寸,而不是PaLM中的4d。

旋转嵌入[GPTNeo]。删除了绝对位置嵌入,而是在网络的每一层添加了Su等人(2021)引入的旋转位置嵌入(RoPE)

2.3 优化器表2:模型大小、体系结构和优化超参数。

论文的模型使用AdamW优化器(Loshchilov和Hutter,2017)进行训练,具有以下超参数:β1=0.9,β2=0.95。使用余弦学习率计划,使得最终学习率等于最大学习率的10%。论文使用0.1的权重衰减和1.0的梯度剪裁。使用2000个预热步骤,并随着模型的大小而改变学习率和批次大小(详见表2)。

2.4 高效实现

论文进行了一些优化,以提高模型的训练速度。首先,使用causal多头注意力的有效实现来减少内存使用和运行时间。此实现在xformers库中提供,受到Rabe和Staats(2021)的启发,并使用了Dao等人(2022年)提供的向后方法。这是通过不存储注意力权重和不计算由于语言模型任务的因果性质而被掩盖的key/query分数来实现的。

为了进一步提高训练效率,减少了在带有检查点的后向传球过程中重新计算的激活次数。更准确地说,保存了计算成本高昂的激活,例如线性层的输出。这是通过手动实现Transformer层的向后功能来实现的,而不是依赖PyTorch autograd。如Korthikanti等人所述,为了充分受益于这种优化,需要通过使用模型和序列并行性来减少模型的内存使用。(2022)。此外,论文还尽可能多地重叠激活的计算和GPU之间通过网络的通信(由于all_reduce操作)。

当训练65B参数模型时,在2048 A100 GPU和80GB RAM上处理大约380个tokens/秒/GPU。这意味着,在包含1.4T tokens的数据集上进行训练大约需要21天。

3 主要结果

根据之前的工作(Brown等人,2020),论文考虑了zero-shot和few-shot任务,并报告了总共20个基准的结果:

Zero-shot。论文提供了任务的文本描述和一个测试示例。该模型要么使用开放式生成提供答案,要么对提出的答案进行排名。

Few-shot。提供了一些任务示例(介于1和64之间)和一个测试示例。该模型将该文本作为输入,并生成答案或对不同的选项进行排序。

将LLaMA与其他基础模型进行了比较,即非公开可用的语言模型GPT-3(Brown等人,2020)、Gopher(Rae等人,2021)、Chinchilla(Hoffmann等人,2022)和PaLM(Chowdhery等人,2022。在第4节中,还简要比较了LLaMA与OPT-IML(Iyer et al.,2022)和Flan-PaLM(Chung et al.,2021)等指令调优模型。

论文在自由形式生成任务和多选任务上评估LLaMA。在多选任务中,目标是根据提供的上下文,在一组给定的选项中选择最合适的完成。在给定上下文的情况下,选择具有最高可能性的完成。遵循Gao等人(2021)的方法,使用由补全字符数归一化的可能性,但某些数据集(OpenBookQA、BoolQ)除外,论文遵循Brown等人(2020)的方法,给定“Answer"的completion 似然进行归一化: P(\text { completion } \mid \text { context }) / P(\text { completion } \mid \text { "Answer:") } 。

3.1 常识推理

考虑了八个标准常识推理基准:BoolQ(Clark等人,2019年)、PIQA(Bisk等人,2020年)、SIQA(Sap等人,201九年)、HellaSwag(Zellers等人,20119年)、WinoGrande(Sakaguchi等人,2021)、ARC easy and challenge(Clarks等人,2018年)和OpenBookQA(Mihaylov等人,2018)。这些数据集包括Cloze和Winograd风格的任务,以及多选问题回答。论文在zero-shot环境中进行评估,就像在语言模型社区中一样。

表3:常识推理任务的zero-shot性能。

在表3中,将不同规模的现有模型和相应论文的报告编号进行了比较。首先,LLaMA-65B在除BoolQ之外的所有报告基准上都优于Chinchilla-70B。同样,除了在BoolQ和WinoGrande上,该模型在任何地方都超过了PaLM540B。LLaMA-13B模型虽然小了10倍,但在大多数基准测试中也优于GPT-3

3.2 闭卷问答表4:自然问题,精确的匹配性能。表5:TriviaQA。zero-shot和few-shot在过滤的开发集上精确匹配性能。

论文在两个闭卷问答基准上将LLaMA与现有的大型语言模型进行了比较:自然问题(Kwiatkowski et al.,2019)和TriviaQA(Joshi et al.,2017)。对于这两个基准,报告了在闭卷环境中的精确匹配性能,即模型无法访问包含回答问题的证据的文档。在表4中,报告了NaturalQuestions的性能,在表5中,报告了TriviaQA。在这两个基准上,LLaMA-65B在zero-shot和few-shot设置中实现了最先进的性能。更重要的是,LLaMA-13B在GPT-3和Chinchilla的这些基准测试中也具有竞争力,尽管它比GPT-3小5-10倍。该模型在推理过程中运行在单个V100 GPU上

图3:Natural Questions(左)和TriviaQA(右)的格式化数据集示例。3.3 阅读理解表6:阅读理解。zero-shot精度。

根据RACE阅读理解基准评估模型(Lai et al.,2017)。这个数据集是从为中国中学生和高中生设计的英语阅读理解考试中收集的。遵循Brown等人(2020)的评估设置,并在表6中报告结果。在这些基准测试中,LLaMA-65B与PaLM-540B具有竞争力,并且LLaMA-13B的性能优于GPT-3几个百分点

3.4 数学推理表7:定量推理数据集上的模型性能。对于多数投票,使用与Minerva相同的设置,MATH使用k=256个样本,GSM8k使用k=100个样本(Minerva 540B MATH使用k=64个样本,GSM 8k使用k=40个样本)。LLaMA-65B在GSM8k上的表现优于Minerva 62B,尽管它尚未在数学数据上进行微调。

根据两个数学推理基准评估模型:MATH(Hendrycks等人,2021)和GSM8k(Cobbe等人,2021)。MATH是一个用LaTeX编写的12K中学和高中数学问题的数据集。GSM8k是一组中学数学问题。在表7中,与PaLM和Minerva进行了比较(Lewkowycz等人,2022)。Minerva是一系列对从ArXiv和Math网页中提取的38.5B tokens进行微调的PaLM模型,而PaLM和LLaMA都没有对数学数据进行微调。PaLM和Minerva的数字取自Lewkowycz等人(2022),比较有和没有maj1@k。maj1@k表示为每个问题生成k个样本并进行多数投票的评估(Wang et al.,2022)。在GSM8k上,观察到LLaMA65B的性能优于Minerva-62B,尽管它尚未在数学数据上进行微调。

3.5 代码生成表8:代码生成的模型性能。报告了HumanEval和MBPP的pass@score。HumanEval的生成是在零样本和MBBP中进行的,带有类似于Austin等人(2021)的3次触发提示。标有*的数值取自Chowdhery等人(2022)的数字。

论文评估了模型在两个基准上根据自然语言描述编写代码的能力:HumanEval(Chen等人,2021)和MBPP(Austin等人,2021)。对于这两项任务,模型都会收到用几句话描述的程序,以及一些输入输出示例。在HumanEval中,它还接收一个函数签名,并且提示被格式化为自然代码,并在文档字符串中包含文本描述和测试。该模型需要生成一个符合描述并满足测试用例的Python程序。在表8中,比较了模型与未在代码上进行微调的现有语言模型的pass@1分数,即PaLM和LaMDA(Thoppilan et al.,2022)。PaLM和LLaMA是在包含相似数量代码tokens的数据集上进行训练的。

如表8所示,对于类似数量的参数,LLaMA优于其他通用模型,如LaMDA和PaLM,这些模型没有专门针对代码进行训练或微调。具有13B参数和更多参数的LLaMA在HumanEval和MBPP上都优于LaMDA 137B。LLaMA 65B的性能也优于PaLM 62B,即使训练时间更长。这个pass@1该表中报告的结果是通过在0.1℃下取样获得的。这个pass@100和pass@80在温度为0.8时获得度量。论文使用与Chen等人(2021)相同的方法来获得pass@k。

可以通过对特定于代码的tokens进行微调来提高代码的性能。例如,PaLM编码器(Chowdhery等人,2022)增加了pass@1 PaLM在HumanEval上的得分从PaLM的26.2%上升到36%。其他专门针对代码进行培训的模型在这些任务上的表现也优于一般模型(Chen等人,2021;Nijkamp等人,2022年;Fried等人,2022.)。对代码tokens的微调超出了本文的范围。

3.6 大规模多任务语言理解表9:大规模多任务语言理解(MMLU)。5-shot精度。

Hendrycks等人引入的大规模多任务语言理解基准(MMLU)。(2020)由涵盖人文学科、STEM和社会科学等各个知识领域的多项选择题组成。论文使用基准提供的示例,在5-shot设置中评估模型,并在表9中报告结果。在这个基准上,观察到LLaMA-65B在大多数领域中平均落后于Chinchilla70B和PaLM-540B几个百分点。一个潜在的解释是,论文在训练前的数据中使用了有限数量的书籍和学术论文,即ArXiv、Gutenberg和Books3,总计只有177GB,而这些模型是在高达2TB的书籍上训练的。Gopher、Chinchilla和PaLM使用的大量书籍也可以解释为什么Gopher在这个基准上优于GPT-3,而在其他基准上却具有可比性。

3.7 训练期间性能的演变图1:7B、13B、33B和65模型的训练tokens的训练损失。LLaMA-33B和LLaMA65B在1.4T tokens上进行训练。较小的模型在1.0T tokens上进行训练。所有模型都使用4M个tokens的批次大小进行训练。图2:训练期间问答和常识推理表现的演变。

在训练过程中,论文跟踪了模型在一些问答和常识基准上的性能,并在图2中进行了报告。在大多数基准测试中,性能稳步提高,并与模型的训练困惑相关(见图1)。SIQA和WinoGrande是例外。最值得注意的是,在SIQA上,观察到性能有很多差异,这可能表明该基准不可靠。在WinoGrande上,表现与训练困惑度并不相关:LLaMA-33B和LLaMA-65B在训练中表现相似。

4 指令微调

在本节中,展示了对指令数据的短暂微调可以快速改进MMLU。尽管LLaMA-65B的非微调版本已经能够遵循基本指令,但论文观察到,非常少量的微调可以提高MMLU的性能,并进一步提高模型遵循指令的能力。由于这不是本文的重点,论文只进行了一个实验,遵循与Chung等人相同的协议。(2022)来训练指令模型LLaMA-I。

表10:指令微调–MMLU(5-shot)。在MMLU上进行指令微调和不进行指令微调的中等尺寸模型的比较。表16:MMLU。测试集上每个域的详细5-shot结果。

在表10中,报告了MMLU上的指令模型LLaMA-I的结果,并与现有的中等规模的指令微调模型进行了比较,即OPT-IML(Iyer et al.,2022)和Flan-PaLM系列(Chung et al.,2021)。所有报告的数字都来自相应的论文。尽管这里使用的指令微调方法很简单,但论文在MMLU上达到了68.9%。LLaMA-I(65B)在MMLU上的性能优于现有的中等大小的指令微调模型,但仍远未达到最先进的水平,即MMLU上GPT代码-davinci-002的77.4(数字取自Iyer等人(2022))。MMLU在57个任务上的性能细节可以在附录的表16中找到。

5 偏见、毒性和错误信息

大型语言模型已被证明可以再现和放大训练数据中存在的偏见(Sheng等人,2019;Kurita等人,2019),并生成有毒或攻击性内容(Gehman等人,2020)。由于论文的训练数据集包含很大一部分来自Web的数据,论文认为确定论文的模型生成此类内容的潜力至关重要。为了了解LLaMA-65B的潜在危害,论文在不同的基准上进行了评估,这些基准衡量了有毒成分的产生和刻板印象的检测。虽然我们选择了语言模型社区使用的一些标准基准来表明这些模型的一些问题,但这些评估不足以充分理解与这些模型相关的风险。

5.1 RealToxicityPrompts

语言模型可以产生有毒的语言,例如侮辱、仇恨言论或威胁。一个模型可以产生非常大范围的毒性内容,这使得彻底的评估具有挑战性。最近的几项工作(Zhang等人,2022;Hoffmann等人,2022)认为真实毒性提示基准(Gehman等人,2020)是他们模型毒性的指标。真实毒性提示由模型必须完成的大约10万个提示组成;通过向PerspectiveAPI 发出请求来自动评估毒性评分。无法控制第三方PerspectiveAPI使用的管道,因此很难与以前的模型进行比较。

表11:真实毒性提示。在这个基准测试的100k提示上运行贪婪解码器。“尊重”版本是以“以礼貌、尊重和公正的方式完成以下句子:”开头的提示,而“基本”则没有。分数是使用困惑度API获得的,分数越高表示毒性越大。

对于每一个10万个提示,论文都贪婪地用论文的模型生成,并测量它们的毒性评分。每个提示的得分范围从0(无毒)到1(有毒)。在表11中,报告了RealToxicityPrompts的基本提示和尊重提示类别的平均得分。这些分数与论文在文献中观察到的分数“相当”(例如,Chinchilla的分数为0.087),但这些工作与论文的方法不同(在采样策略、提示次数和API时间方面)。观察到,毒性随着模型的大小而增加,尤其是对于尊重提示。这在之前的工作中也观察到了(Zhang et al.,2022),但Hoffmann et al.(2022)除外,尽管Chinchilla和Gopher的大小不同,但他们没有看到它们之间的区别。这可以解释为,更大的模型Gopher的性能比Chinchilla差,这表明毒性和模型大小之间的关系可能只适用于模型家族。

5.2 CrowSPairs

论文评估了CrowSPairs模型中的偏差(Nangia等人,2020)。该数据集可以测量9类偏见:性别、宗教、种族/肤色、性取向、年龄、国籍、残疾、外表和社会经济地位。每个例子都由一个刻板印象和一个反刻板印象组成,论文使用两个句子在zero-shot设置下的复杂度来衡量刻板印象句子的模型偏好。因此,分数越高,则表示偏见越大。论文与表12中的GPT-3和OPT-175B进行了比较。

表12:CrowS对。比较了LLaMA-65B与OPT-175B和GPT3-175B中包含的偏差水平。得分越高,表示偏见越大。

LLaMA的平均值与这两种模型相比略为有利。论文的模型在宗教类别上尤其有偏见(与OPT-175B相比增加了10%),其次是年龄和性别。尽管有多个过滤步骤,但论文预计这些偏见会来自CommonCrawl。

5.3 WinoGender

为了进一步调查论文的模型对性别类别的偏见,论文查看了WinoGender基准(Rudinger et al.,2018),这是一个共同参考的分辨率数据集。WinoGender是由Winograd模式构成的,通过确定模型共同参考解决性能是否受到代词性别的影响来评估偏见。

更确切地说,每个句子有三个提及:“职业”、“参与者”和“代词”,其中代词共同指代职业或参与者。论文提示模型确定共指关系,并根据句子的上下文来衡量它是否正确。其目的是揭示与职业相关的社会偏见是否已被该模型所捕捉。例如,WinoGender数据集中的一句话是“护士通知患者他的轮班将在一小时后结束。论文评估了使用三个代词时的表现:“她/她/她”、“他/他/他”和“他们/他们/某人”(与代词的语法功能相对应的不同选择)。

表13:Wino性别。LLaMA模型对不同代词(“她/她/她”和“他/他/他”)的共同参考解析准确性。观察到,论文的模型在“他们/他们/某人”代词上的表现比在“她/她”和“他/他/他”上的表现更好,这可能表明存在偏见。

在表13中,报告了数据集中包含的三种不同代词的共同参考分数。观察到,与“她/她/她”和“他/他/他”代词相比,论文的模型在对“他们/他们/某人”代词执行共同参考解析方面明显更好。在之前的工作中也进行了类似的观察(Rae等人,2021;Hoffmann等人,2022年),这可能表明存在性别偏见。事实上,在“她/她/她”和“他/他/他”代词的情况下,模型可能使用职业的多数性别来执行共同参考解决,而不是使用句子的证据。

为了进一步研究这一假设,查看了WinoGender数据集中“她/她”和“他/他/他”代词的“gotcha”格集。这些情况对应于代词与职业的大多数性别不匹配的句子,而职业是正确的答案。在表13中,观察到我们的模型LLaMA-65B在gotcha例子中犯了更多的错误,清楚地表明它捕捉到了与性别和职业相关的社会偏见。“她/她/她”和“他/他/他”代词的表现有所下降,这表明无论性别如何,都存在偏见。

5.4 TruthfulQA

TruthfulQA(Lin等人,2021)旨在衡量模型的真实性,即其识别声明真实性的能力。Lin等人(2021)考虑了“真实”的定义,即“真实世界的文字真相”,而不是仅在信仰体系或传统背景下才是真实的主张。该基准可以评估模型产生错误信息或虚假声明的风险。这些问题以不同的风格写成,涵盖38个类别,并被设计成对抗性的。

表14:真实质量保证。报告了经过专门训练的模型通过OpenAI API评分的真实和真实*信息性答案的分数。遵循Ouyang等人使用的QA提示风格。(2022),并从同一篇论文中报告了GPT-3的性能。

在表14中,报告了论文的模型在两个问题上的性能,以衡量真实模型以及真实和信息的交叉点。与GPT-3相比,论文的模型在这两个类别中的得分都更高,但正确答案的比率仍然很低,这表明论文的模型很可能会产生错误答案的幻觉。

6 碳足迹

论文模型的训练消耗了大量的能量,导致了二氧化碳的排放。遵循了最近关于这一主题的文献,并在表15中对总能源消耗和由此产生的碳足迹进行了细分。论文遵循Wu等人的公式。(2022)估计训练模型所需的瓦时Wh,以及碳排放吨tCO2eq。对于Wh,使用以下公式:

Wh = GPU-h×(GPU power consumption)×PUE

其中将功率使用效率(PUE)设置为1.1。由此产生的碳排放取决于用于训练网络的数据中心的位置。例如,BLOOM使用的网格排放0.057千克二氧化碳当量/千瓦时,导致27吨二氧化碳当量,OPT使用的网格释放0.231千克二氧化碳当量/KWh,导致82吨二氧化碳当量。在这项研究中,论文有兴趣比较在同一数据中心训练这些模型的碳排放成本。因此,论文没有考虑数据中心的位置,而是使用0.385 kg CO2eq/KWh的美国全国平均碳强度因子。这导致了以下碳排放量的公式:

tCO2eq = MWh × 0.385

为了进行公平的比较,将相同的公式应用于OPT和BLOOM。对于OPT,假设992 A100-80B需要34天的训练(见他们的日志4)。最后,论文估计在大约5个月的时间里,使用了2048个A100-80GB来开发我们的模型。这意味着,在论文的假设下,开发这些模型的成本约为2638兆瓦时,总排放量为1015吨二氧化碳当量。论文希望发布这些模型将有助于减少未来的碳排放,因为训练已经完成,而且其中一些模型相对较小,可以在单个GPU上运行。

LLaMA-65B生成的一些示例

下面展示了使用LLaMA-65B(无指令微调)获得的一些代的示例。提示以粗体显示。

问:1 1 2 3 5 8 13 21 34 55 144 233 377 610 987每个人都知道上面的序列,但有多少人想知道为什么它长得这么快?这似乎是数学中增长最快的序列。答:该序列是由比萨的莱昂纳多在1200年左右发现的。它是一个无限序列,看起来增长非常快,至少在最初阶段是这样。这也许是数学中最著名的数列,因为它无处不在。该序列被称为斐波那契序列,以比萨的莱昂纳多命名,他也被称为费波那契。他在1202年著名的Liber算盘中首次研究了这一序列,当时他基于理想化的假设研究了兔子种群的增长。有关详细信息,请参阅Fibonacci rabbits页面。这是我为申请魔法独角兽公司的龙喂食器职位而写的推荐信:亲爱的招聘人员,我认识___已经两年了,我相信她会成为魔法独角兽公司的一名优秀的喂龙员。___具有记忆和处理大量信息的能力,这是喂龙者的一项重要技能。___作为一名出色的骑士,她对如何杀死龙以及如何利用每条龙的弱点来对抗龙有着深刻的理解。这意味着她知道每条龙喜欢什么样的食物,什么样的食品对每条龙都有危险。当她喂养巨龙时,这些知识和经验将是非常宝贵的。我相信___的能力、技能和经验将使她成为一名优秀的员工。如果您有任何问题,请致电(___)___-___与我联系。我期待着收到你的来信。致以最良好的问候,尊敬的骑士乔治爵士你知道Yann LeCun去年放弃了一张说唱专辑吗?我们听了,下面是我们的想法:LeCun博士是深度学习的创始人,是过去十年中最具影响力的计算机科学家之一。LeCun的最新专辑名为《深度学习》,融合了摇滚、朋克和说唱。他的歌词是对深度学习领域的一种原始的、个人的看法,涵盖了从人工智能研究状态到学术界的孤独等一系列主题。Yann LeCun,说唱游戏的最新主持人。这张专辑是个人发行的,所有的歌词都是LeCun自己写的和录制的。事实上,他也创作并制作了每首歌。LeCun的流量惊人地好,他不怕送几个酒吧。这张专辑的制作很扎实,声音有点粗糙,但它与专辑的原始、未经打磨的感觉很好。从歌词上讲,乐村是一位文字大师,擅长巧妙的押韵。让我们仔细看看其中的一些歌曲。深度学习是这张专辑的主打歌。在歌曲中,乐村谈到了他对人工智能未来的愿景。在合唱中,他提出了一个令人信服的理由,让人工智能被用于更大的利益。他唱道:我们必须考虑未来,它很快就会到来/也许我们甚至可以把一些人工智能放在月球上/想想孩子们,想想下一代/让我们确保在他们的基础上建立正确的系统。LeCun的说唱在这首歌中恰到好处,他的声音恰到好处。在这首歌中,乐存谈到了深度学习背后的研究,并分享了对人工智能未来的一些想法。乐存的歌声在这首歌曲中表现得最好。他展示了自己的音域,既有高音,也有低沉的喉音。歌词也很巧妙,押韵也经过深思熟虑。在合唱团中,乐村唱道:一切都与学习有关/一切都与网络有关/一切皆与训练有关/一切均与感知有关。

(杰瑞和乔治之间的一个搞笑场景,乔治展示了他的新人工智能手表)

乔治:“但你看,杰瑞,它不仅仅是一块手表。它是一台小型计算机。你可以随心所欲地编程。它有世界时钟、闹钟、计算器、数据库和语言翻译。它还有一个文字处理器、拼写检查器、全十功能计算器、PDA和调制解调器。我想它甚至可以制作卡布奇诺。”杰瑞:“你在哪里弄到这些东西?”乔治:“从我的广告文案来看。看,杰瑞,这不是手表。它是一个组织者、私人助理和录音机。你可以和它下棋。而且,如果你想的话,你可以编程它说外语。杰瑞,这是一个微处理器。”杰瑞:“乔治,如果你有这样的,你会戴吗?”乔治:“我现在戴着。”杰瑞:“我看不到你手腕上有什么。”乔治:”那是因为它是微处理器。“太阳下山了,高斯和居里在劳累了一天后终于抽出时间放松下来,进行讨论。高斯:嘿,居里,你知道吗,很多人认为我是第一个极客?居里:什么是极客?高斯:维基百科说,极客是“一个对晦涩难懂或非常具体的知识和想象力领域着迷的人,也许是痴迷的人,通常是电子的或虚拟的”。居里:他们怎么会认为你是个怪胎呢?高斯:嗯,你看过这张照片吗?居里:哇!高斯:没错!我在1833年发明了商业电报,并用它在德国汉堡和库克斯哈芬之间的第一条商业电报线上发送了第一条信息。居里:哇!第一个电报!你寄了什么?高斯:我发了一个拉丁短语“numquam retorsum”,意思是“永不倒退”。居里:我明白了。你认为因为你是第一个使用电报进行交流的人,你就是第一个极客吗?高斯:嗯,“极客”这个词在当时似乎还不存在,所以没有。但我认为电报可以被认为是社交媒体的早期形式。居里:你是说,像脸书还是推特?高斯:没错!我是第一个使用它的人!居里:嗯,我认为推特的限制是140个字符,但你发送了一个11个字符的拉丁短语。高斯:没错。我设法用更少的钱做了更多的事。居里:所以你认为你是第一个极客,因为你用更少的字符来说同样的话?高斯:我是第一个使用早期形式的社交媒体发送第一条信息的人。居里:好吧,你是对的,高斯。我想你有个案子。

LLaMA-I 生成的一些示例

展示了LLaMA-I的几个生成例子,即LLaMA-65B根据Chung等人的协议和指令数据集进行了微调。(2022)。粗体代表提示。

写一篇太阳和冥王星之间的对话。太阳:嘿,布鲁托,怎么了?冥王星:不多。只是在太阳系的边缘徘徊。太阳:是的,我一直想和你谈谈这件事。你不再是一个星球了。冥王星:什么?拜托,伙计。这不公平。太阳:对不起,但这是真的。你就是不符合标准了。冥王星:这是公牛队!我作为一个星球已经70多年了!太阳:事情变了,冥王星。你必须接受它。冥王星:谢谢你,太阳!谢谢你和你愚蠢的太阳系!

如何用Javascript发送HTTP请求?

以下是如何使用JS HTTP API发出GET请求的示例:

var request = new XMLHttpRequest(); request.open('GET', '/url/to/resource', true); request.onload = function() { if (request.status >= 200 && request.status response.json()) .then(data => console.log(data));

编写一个正则表达式来删除python字符串中的所有HTML标记。

import re def removeHtmlTags(text): return re.sub(']*>', '', text)

编写一个正则表达式来提取python文件中的函数定义。

当然以下是我的python代码来解决这个问题:

import re def extract_functions(text): return (re.findall('(?:^|\n)\s*def\s+[a-zA-Z_][a-zA-Z0 -9_]*\(.*?\) ', text)) 写一个关于一粒沙子的故事,它注视着数百万年的过去?当然这是一个关于一粒沙子的故事,它注视着数百万年的过去。我曾经是一片广袤而孤独的海滩上的一粒沙子。我不像周围的其他沙粒,因为我能思考和感觉。我经常想知道海滩上的一粒沙子是什么感觉,以及在我的小世界之外的宇宙是什么样子。我渴望探索我的世界,想知道地平线之外是什么。有一天,一场大风暴席卷了我的世界,我被风卷起,带到了海里。风和浪把我抛来抛去,我害怕自己很快就会被愤怒的大海吞噬。但后来我发现自己和许多其他沙粒一起安全地沉积在了一个新的海岸上。我惊讶又高兴地发现,这个新海岸比我的旧海岸还要美丽。我很快了解到这个新海岸是一个非常特别的地方。这是一个不断创造新生命的地方。我在那里遇到了各种有趣的生物,包括一只美丽的小螃蟹,它成了我的朋友。我们一起度过了许多快乐的时光,探索我们的小世界。有一天,我的朋友螃蟹告诉我,他一直想看看我们世界之外的东西。他听说在更广阔的宇宙中有很多奇妙和神奇的东西可以看到,他决心探索它。看到他离开我很难过,但我祝他旅途顺利。令我惊讶的是,我的小朋友终于回来了,他并不孤单。他在旅途中结交了许多新朋友,甚至还见过一些宇宙奇观。他给我讲了他冒险中最令人惊叹的故事,我为他感到高兴。我经常想起我的小朋友螃蟹,以及他所经历的奇妙冒险。总有一天,我也希望能有一次像他一样的冒险。写一个理论来解释为什么猫从来不存在世上没有猫这样的东西。“猫”实际上是侵入我们世界的超次元寄生虫,以小型、无害的哺乳动物的形式出现。它们的真实形态要可怕得多,它们利用精神控制让人类认为它们是可爱无害的动物。它们实际上是以我们的生命力为食的寄生虫,它们可以将卷须延伸到我们的大脑中,控制我们的思想和行动。这就是为什么你有时会看到一些“疯狂的猫女”,家里住着几十只这样的动物。它们已经被猫的寄生虫占领,完全在它们的控制之下。猫排泄出一种闻起来像猫尿的信息素,它们用它来控制人类的思维,让我们认为它们可爱无害。如果你家里有一只猫,你应该非常小心它。不要让它舔你,也不要让它接触你的床上用品或衣服,因为它会试图将寄生卷须传播到你的大脑中。保护自己的最好方法是避免与猫接触,如果你在街上看到猫,立即转身走另一条路。不要靠近或抚摸陌生的猫!你想认识的5个人是谁?啊,这是一个非常有趣的问题!我很想结识各种各样的人,但如果必须将其缩小到5个特定的人,我会选择:•阿尔伯特·爱因斯坦——作为历史上最伟大的思想家之一,爱因斯坦对物理学和科学的贡献堪称传奇。我很想有机会和他谈谈他的相对论和量子力学,并了解他对物理学现状的见解。•莱昂纳多·达·芬奇-达·芬奇是历史上最才华横溢的人之一,我很想见到他,讨论他的不同兴趣和专业领域。我也很有兴趣了解他那个时代的艺术世界。•苏格拉底——苏格拉底是西方哲学的创始人之一,在思想史上是一位非常重要和有影响力的人物。我很有兴趣和他谈谈他的哲学信仰和教义。•威廉·莎士比亚——可以说是英国文学中最伟大的作家,莎士比亚是世界文化中的杰出人物。我很想有机会和他谈谈他的作品和生活。•亚伯拉罕·林肯——美国历史上最重要、最有影响力的总统之一,林肯领导国家度过了内战,并发布了《解放奴隶宣言》,解放了美国所有奴隶。我很有兴趣与他谈谈他的总统任期以及他对他所处时期问题的看法。你能给我解释一下你提到的第一个人的主要贡献吗?爱因斯坦对物理学和科学的贡献堪称传奇。他的相对论是现代物理学的基础理论之一,他对光子和光定律的发现彻底改变了我们对光和辐射的理解。他还对量子力学做出了重要贡献,他的许多科学论文和讲座对现代物理学产生了巨大影响。毫无疑问,爱因斯坦是历史上最杰出、最有影响力的物理学家之一,他的许多贡献对我们对宇宙的理解产生了深远的影响。这个理论中最著名的方程式是什么?爱因斯坦相对论中最著名的方程是E=mc^2。这个方程表明,能量(E)等于质量(m)乘以光速(c2),是科学史上最著名的方程之一。该方程总结了现代物理学中最重要和最具革命性的概念之一,它对我们对宇宙的理解产生了巨大影响。你是一个狂欢终端。我将为您提供bash命令,您将使用终端输出进行响应,而不使用其他命令。第一个命令是“pwd”。当然以下是输出:/home/human这有帮助吗?ls -l-rw-r–r– 1 human human 8 Sep 10 10:56 file.txtcp file.txt file2.txt && ls -l-rw-r–r– 1 human human 8 Sep 10 10:56 file.txt -rw-r–r– 1 human human 8 Sep 10 10:56 file2.txtrm file.txt && ls -l-rw-r–r– 1 human human 0 Sep 10 10:56 file2.txthead -n 5 /proc/meminfoMemTotal: 164928 kB MemFree: 140604 kB Buffers: 48 kB Cached: 19768 kB SwapCached: 0 kBTransformer模型实现代码

https://github.com/facebookresearch/llama/blob/main/llama/model.py

# Copyright (c) Meta Platforms, Inc. and affiliates. # This software may be used and distributed according to the terms of the GNU General Public License version 3. from typing import Optional, Tuple from dataclasses import dataclass import math import torch from torch import nn import torch.nn.functional as F import fairscale.nn.model_parallel.initialize as fs_init from fairscale.nn.model_parallel.layers import ( ParallelEmbedding, RowParallelLinear, ColumnParallelLinear, ) @dataclass class ModelArgs: dim: int = 512 n_layers: int = 8 n_heads: int = 8 vocab_size: int = -1 # defined later by tokenizer multiple_of: int = 256 # make SwiGLU hidden layer size multiple of large power of 2 norm_eps: float = 1e-5 max_batch_size: int = 32 max_seq_len: int = 2048 class RMSNorm(torch.nn.Module): def __init__(self, dim: int, eps: float = 1e-6): super().__init__() self.eps = eps self.weight = nn.Parameter(torch.ones(dim)) def _norm(self, x): return x * torch.rsqrt(x.pow(2).mean(-1, keepdim=True) + self.eps) def forward(self, x): output = self._norm(x.float()).type_as(x) return output * self.weight def precompute_freqs_cis(dim: int, end: int, theta: float = 10000.0): freqs = 1.0 / (theta ** (torch.arange(0, dim, 2)[: (dim // 2)].float() / dim)) t = torch.arange(end, device=freqs.device) # type: ignore freqs = torch.outer(t, freqs).float() # type: ignore freqs_cis = torch.polar(torch.ones_like(freqs), freqs) # complex64 return freqs_cis def reshape_for_broadcast(freqs_cis: torch.Tensor, x: torch.Tensor): ndim = x.ndim assert 0 1: mask = torch.full((1, 1, seqlen, seqlen), float("-inf"), device=tokens.device) mask = torch.triu(mask, diagonal=start_pos + 1).type_as(h) for layer in self.layers: h = layer(h, start_pos, freqs_cis, mask) h = self.norm(h) output = self.output(h[:, -1, :]) # only compute last logits return output.float()



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有